// echo-cancelation files
//
//

#ifndef _VC10EA_

#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <math.h>

#include "../Echo/ec_sbx.h"
#include "../Echo/ec.h"

#endif //ndef _VC10EA_

#include "../Echo/ec_constants.h"


Echo_canceller ec_ref;

int EchoCancelInit()
{
  // initialize the echo canceller
  //
  ec_ref.init_cc(DEFAULT_GAMMA, DEFAULT_N, DEFAULT_M, DEFAULT_BETA1,
		 DEFAULT_SIGMA_LY, DEFAULT_SIGMA_LU,
		 DEFAULT_ALPHA_ST, DEFAULT_ALPHA_YT, DEFAULT_CUTOFF,
		 DEFAULT_HANGT, DEFAULT_SUPPR, DEFAULT_TAU);

  return 1;
}
int EchoCancelProcessGSM(short* sigS,short* refS)
{
	int i;
	// process 160 samples
	for (i=0;i<160;i++) {
		int d;
	    double ref = AMPL_SCALE_1 * (double)(refS[i]);
		double sig = AMPL_SCALE_1 * (double)(sigS[i]);
    
	    // process the data
		//
		d=ec_ref.process_cc(ref, sig);
		sigS[i] = ec_ref.clip_cc(d);

	}
	return 160;
}
